package GUI;


import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import Modelo.Casillero;
import Principal.Main;
import java.awt.Dimension;
import java.util.ArrayList;
import java.util.List;

import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;

import java.awt.BorderLayout;

public class VentanaMatrizQ extends JFrame{
	
	 public VentanaMatrizQ(){
		  super("MatrizAprendizaje");
		 setTitle("Matriz Q");
			setSize(600,600);
			getContentPane().revalidate();
			getContentPane().repaint();
			setVisible(true);
	        Object[][] datos = null;
	        String[] nombColumna = {"ESTADOS/MOV. RELATIVO", "Norte","Noreste","Este","Sureste","Sur","Suroeste","Oeste","Noroeste"};
	        DefaultTableModel tablamodel= new DefaultTableModel(datos,nombColumna);
	        JTable tabla = new JTable(tablamodel);
	        tabla.setPreferredScrollableViewportSize(new Dimension(600, 600));
	        JScrollPane scrollPane = new JScrollPane(tabla);
	        tabla.setEnabled(false);
	        getContentPane().add(scrollPane, BorderLayout.CENTER);
	        Object[] fila = new String[9];
	        String estado;
			int posicion;
	        List <Casillero> vecinos = new ArrayList<Casillero>();
	        
	        
	           for(int i=0;i<Main.tablero.length;i++){
	                for(int j=0;j<Main.tablero.length;j++){
	                    if(Main.tablero[i][j] != null){   
	                    estado = "("+i+","+j+")";
	                    fila[0] = estado;

	    				double[] arrayQ = new double [8];
	    				Casillero casillero = Main.tablero[i][j];
	    				vecinos = casillero.DevolverVecinos();
	    				for (Casillero vecino:vecinos){
	    					posicion = vecino.movrelativo;
	    					arrayQ[posicion] = Main.matrizQ[casillero.posCasX][casillero.posCasY][vecino.movrelativo];
	    				}
	    				
	    				for (int x = 0; x < 8; x++){
	    					String valorQ= String.valueOf (arrayQ[x]);
	    		            fila[x+1]=valorQ;
	    				}
	       
	    				 tablamodel.addRow(fila);       
	                   
	                    }
	                   
	                }    
	                    
	           }         
	       
	        DefaultTableCellRenderer tcr = new DefaultTableCellRenderer();
	        tcr.setHorizontalAlignment(SwingConstants.CENTER);
	        for(int l=0;l<9;l++){
	            tabla.getColumnModel().getColumn(l).setCellRenderer(tcr);
	        }
	          
	     
	  }   
}